﻿using System;
using System.Collections.Generic;
using System.Collections;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.SqlClient;
using System.Data;
using System.Text;
using System.Configuration;
using Code;
#pragma warning disable 436

public partial class cp_employee_manage_OrderDetail : System.Web.UI.Page
{
    List<Code.PhuongThucGiaoHang> listPTGH = null;
    List<Code.PhuongThucThanhToan> listPTTT = null;
    List<Code.NhanVien> listNV = null;

    HoaDonController hoadonController = null;

    protected void Page_Load(object sender, EventArgs e)
    {
        hoadonController = new HoaDonController();

        //btnLayThoiGianHienHanh.Attributes["onClick"] = "return false;";

        listPTTT = hoadonController.GetListPhuongThucThanhToan();
        listPTGH = hoadonController.GetListPhuongThucGiaoHang();
        listNV = hoadonController.GetListNhanVien();

        if (!IsPostBack)
        {
            FillDropLists(listPTTT, listPTGH, listNV);
            String strID = Request.QueryString["ID"];
            if (strID == "")
                return;

            HoaDonInfo hd;
            hd = hoadonController.GetHoaDonDaXacNhan(strID);
            if(hd == null)
                hd = hoadonController.GetHoaDonChuaXacNhan(strID);

            if (hd != null)
            {
                txtMaHoaDon.Text = strID;
                txtNguoiDatHang.Text = hd.NguoiDatHang;
                txtNgayDatHang.Text = hd.NgayDatHang;
                dlPhuongThucThanhToan.Text = hd.PhuongThucThanhToan;
                dlPhuongThucGiaoHang.Text = hd.PhuongThucGiaoHang;
                txtTongTien.Text = hd.TongTien;
                dlNguoiXacNhan.Text = hd.NguoiXacNhan;
                txtNgayXacNhan.Text = hd.NgayXacNhan;
                txtGhiChu.Text = hd.GhiChu;

                txtTenNguoiNhan.Text = hd.TenNguoiNhan;
                txtSoDienThoai.Text = hd.SoDienThoai;
                txtDiaChi.Text = hd.DiaChi;

                FillListSanPham(strID);
            }
        }
    }

    public void FillDropLists(List<Code.PhuongThucThanhToan> listPTTT, List<Code.PhuongThucGiaoHang> listPTGH, List<Code.NhanVien> listNV)
    {
        for (int i = 0; i < listPTTT.Count; i++)
        {
            dlPhuongThucThanhToan.Items.Add(listPTTT[i].TenPhuongThuc);
        }

        for (int i = 0; i < listPTGH.Count; i++)
        {
            dlPhuongThucGiaoHang.Items.Add(listPTGH[i].TenPhuongThuc);
        }

        for (int i = 0; i < listNV.Count; i++)
        {
            dlNguoiXacNhan.Items.Add(listNV[i].TenDangNhap);
        }
        dlNguoiXacNhan.Items.Add("Chưa xác nhận");
    }

    public void FillListSanPham(String strID)
    {
        Grid1.DataSource = hoadonController.GetListSanPham(strID);
        Grid1.DataBind();
    }

    protected void btnHuyDonDatHang_Click(object sender, EventArgs e)
    {
        if (hoadonController.DeleteHoaDon(txtMaHoaDon.Text))
        {
            WebMsgBox.Show("Đã xóa hóa đơn!");
            ClientScript.RegisterStartupScript(this.GetType(), "Delay then redirect", "<script type=text/javascript>delayRedirect('/cp/employee/manage/order.aspx');</script>");
        }
        else
        {
            WebMsgBox.Show("Có lỗi khi hủy hóa đơn, kiểm tra lại các trường thông tin!");
        }
    }

    public int GetIdPhuongThucThanhToan(String TenPhuongThuc)
    {
        for (int i = 0; i < listPTTT.Count; i++)
        {
            if (listPTTT[i].TenPhuongThuc == TenPhuongThuc)
                return listPTTT[i].ID;
        }

        return 1;
    }

    public int GetIdPhuongThucGiaoHang(String TenPhuongThuc)
    {
        for (int i = 0; i < listPTTT.Count; i++)
        {
            if (listPTGH[i].TenPhuongThuc == TenPhuongThuc)
                return listPTGH[i].ID;
        }

        return 1;
    }

    public int GetIdNhanVien(String TenDangNhap)
    {
        if (TenDangNhap == "Chưa xác nhận")
            return -1;

        for (int i = 0; i < listPTTT.Count; i++)
        {
            if (listNV[i].TenDangNhap == TenDangNhap)
                return listNV[i].ID;
        }

        return 0;
    }

    public String ConvertToSqlDateTime(DateTime dt)
    {
        int day;
        int mounth;
        int year;
        int hour;
        int minute;
        int second;

        day = dt.Day;
        mounth = dt.Month;
        year = dt.Year;
        hour = dt.Hour;
        minute = dt.Minute;
        second = dt.Second;

        String str = mounth.ToString() + "/" + day.ToString() + "/" + year.ToString() + " " + hour.ToString() + ":" + minute.ToString() + ":" + second.ToString();
        return str;
    }

    protected void btnCapNhapDonDatHang_Click(object sender, EventArgs e)
    {
        HoaDonInfo hd = new HoaDonInfo();
        hd.MaHoaDon = txtMaHoaDon.Text;
    
        hd.idPhuongThucThanhToan = GetIdPhuongThucThanhToan(dlPhuongThucThanhToan.Text);
        hd.idPhuongThucGiaoHang = GetIdPhuongThucGiaoHang(dlPhuongThucGiaoHang.Text);
        hd.TongTien = txtTongTien.Text;
        
        hd.idNguoiXacNhan = GetIdNhanVien(dlNguoiXacNhan.Text);

        if (dlNguoiXacNhan.Text != "Chưa xác nhận")
        {
            DateTime nxn = DateTime.Now;
            try
            {
                nxn = Convert.ToDateTime(txtNgayXacNhan.Text);
            }
            catch
            {
                WebMsgBox.Show("Ngày xác nhận không chính xác!");
                return;
            }

            hd.NgayXacNhan = ConvertToSqlDateTime(nxn);
        }
        else
            hd.NgayXacNhan = "";
        

        hd.GhiChu = txtGhiChu.Text;

        hd.TenNguoiNhan = txtTenNguoiNhan.Text;
        hd.SoDienThoai = txtSoDienThoai.Text;
        hd.DiaChi = txtDiaChi.Text;

        if(hoadonController.UpdateHoaDon(hd))
        {
            WebMsgBox.Show("Đã cập nhập hóa đơn!");
            ClientScript.RegisterStartupScript(this.GetType(), "Delay then redirect", "<script type=text/javascript>delayRedirect('/cp/employee/manage/order.aspx');</script>");
        }
        else
        {
            WebMsgBox.Show("Có lỗi khi cập nhập hóa đơn, kiểm tra lại các trường thông tin!");
        }
    }
}